extends CharacterBody2D

@export var 玩家速度 : float = 50
@export var 玩家动画 : AnimatedSprite2D
@export var 子弹场景 : PackedScene

var 是否结束 : bool = false

func _ready() -> void:
	pass 

@warning_ignore("unused_parameter")
func _process(delta: float) -> void:
	if velocity == Vector2.ZERO or 是否结束:
		$"玩家移动音效".stop()
	elif !$"玩家移动音效".playing:
		$"玩家移动音效".play()

@warning_ignore("unused_parameter")
func _physics_process(delta: float) -> void:
	if 是否结束:
		return
	
	velocity = Input.get_vector('zuo','you','shang','xia') * 玩家速度
	
	if velocity == Vector2.ZERO:
		玩家动画.play('待机')
	else:
		玩家动画.play('移动')
		
	move_and_slide()

# 游戏结束
func game_over():
	if 是否结束:
		return
	
	是否结束 = true
	玩家动画.play('死亡')
	$"游戏结束音效".play()
	get_tree().current_scene.显示游戏结束()
	
	$"重启游戏".start()


func _on_timer_timeout() -> void:
	if velocity != Vector2.ZERO or 是否结束:
		return
		
	$"子弹音效".play()
		
	var 子弹节点 = 子弹场景.instantiate()
	子弹节点.position = position + Vector2(17, 7)
	get_tree().current_scene.add_child(子弹节点)

func _on_重启游戏_timeout() -> void:
	get_tree().reload_current_scene()
